package br.org.furb.compilador.model.analisador;

public interface ParserConstants
{
    int START_SYMBOL = 43;

    int FIRST_NON_TERMINAL    = 43;
    int FIRST_SEMANTIC_ACTION = 84;

    int[][] PARSER_TABLE =
    {
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1,  1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1,  1, -1,  1, -1,  1,  1,  1, -1,  1,  1,  1,  1, -1,  1, -1,  2, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  3, -1, -1, -1, -1,  3, -1,  3, -1, -1, -1, -1,  3, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  4, -1, -1, -1, -1,  5, -1,  6, -1, -1, -1, -1,  7, -1, -1, -1, -1, -1, -1 },
        { -1,  8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1 },
        { -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 19, -1, 19, -1, 20, 19, 20, -1, 19, 19, 19, 20, -1, 20, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, 21, -1, 21, -1, -1, -1, -1, 21, -1, 21, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 22, -1, 22, -1, -1, -1, -1, 22, -1, 23, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, -1, -1, -1, -1, 25, -1, 25, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, -1, -1, -1, 26, -1, 26, -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, 29, -1, 29, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1 },
        { -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, 30, -1, -1, 30, -1, -1, 30, 30, 30, -1, -1, -1, -1, -1, 31, 30 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33 },
        { -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, 34, 34, -1, -1, 35, -1, -1, 35, 35, 35, -1, -1, -1, 34, -1, -1, 34 },
        { -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 39, -1, -1, 38, 38, 37, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 46, 46, 46, 46, 46, 46, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 51, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 54, 54, 54, 54, 54, 54, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 54, 53, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1 },
        { -1, 55, 55, 55, 55, 55, 55, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1 },
        { -1, 59, 59, 59, 59, 59, 59, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1 },
        { -1, 63, 63, 63, 63, 63, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 72, 72, 72, 72, 72, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 76, 76, 76, 76, 76, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 80, 81, 82, 83, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1,  9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10,  9, -1,  9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 57, -1, -1, -1, -1, -1, -1, -1, 56, 56, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 65, -1, 64, 64, 64, 64, 64, 64, 65, 65, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 73, 73, -1, 73, 73, 73, 73, 73, 73, 73, 73, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, 77, 77, 78, 79, -1, 77, 77, -1, 77, 77, 77, 77, 77, 77, 77, 77, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, 87, 87, 87, 87, -1, 87, 87, -1, 87, 87, 87, 87, 87, 87, 87, 87, 88, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }
    };

    int[][] PRODUCTIONS = 
    {
        {  99,  32,  44,  51,  59,  27, 100 },
        {   0 },
        {  40,  45,  44 },
        {  46, 108,  47, 110,  48, 114,  21 },
        {  24 },
        {  29 },
        {  31 },
        {  36 },
        {   2, 109,  75 },
        {   0 },
        {  20,  47 },
        {   0 },
        {  10,  49 },
        {   3 },
        {   4 },
        {   5 },
        {  50 },
        {  37 },
        {  28 },
        {   0 },
        {  52,  51 },
        {  53,   2,  22,  54,  23,  57,  59,  58,  27 },
        {  46 },
        {  38 },
        {   0 },
        {  55 },
        {  56,  76 },
        {   0 },
        {  20,  55 },
        {  46,   2 },
        {   0 },
        {  41,  45,  57 },
        {   0 },
        {  42,  68,  21 },
        {   0 },
        {  60,  59 },
        {   2, 109,  77 },
        {  61 },
        {  62 },
        {  64 },
        {  66 },
        {  10,  68, 113,  21 },
        {  22,  67,  23,  21 },
        {  35,  22,  47, 111,  23,  21 },
        {  33,  22,  63,  23,  21 },
        {  34,  22,  63, 101,  23,  21 },
        {  68,  98,  78 },
        {   0 },
        {  20,  63 },
        {  30,  22,  68,  23, 115,  59,  65,  27, 116,  21 },
        {   0 },
        {  26, 117,  59 },
        {  25, 118,  59,  39,  22,  68,  23, 119,  21 },
        {   0 },
        {  63 },
        {  69,  79 },
        {   0 },
        {  12,  69, 102,  79 },
        {  11,  69, 103,  79 },
        {  70 },
        {  37,  95 },
        {  28,  96 },
        {  13,  69,  97 },
        {  72,  80 },
        {  71, 104,  72, 105 },
        {   0 },
        {  14 },
        {  15 },
        {  16 },
        {  17 },
        {  18 },
        {  19 },
        {  73,  81 },
        {   0 },
        {   6,  73,  85,  81 },
        {   7,  73,  86,  81 },
        {  74,  82 },
        {   0 },
        {   8,  74,  87,  82 },
        {   9,  74,  88,  82 },
        {   2, 112,  83 },
        {   3,  89 },
        {   4,  90 },
        {   5, 106 },
        {  22,  68,  23 },
        {   6,  74, 107 },
        {   7,  74,  91 },
        {   0 },
        {  22,  63,  23 }
    };

    String[] PARSER_ERROR =
    {
        "",
        "esperado fim de programa", //"Era esperado fim de programa",
        "esperado identificador",//"Era esperado identificador",
        "esperado constante inteira",//"Era esperado const_integer",
        "esperado constante float",//"Era esperado const_float",
        "esperado constante string",//"Era esperado const_string",
        "esperado símbolo \"+\"",//"Era esperado \"+\"",
        "esperado símbolo \"-\"",//"Era esperado \"-\"",
        "esperado símbolo \"*\"",//"Era esperado \"*\"",
        "esperado símbolo \"/\"",//"Era esperado \"/\"",
        "esperado símbolo \"=\"",//"Era esperado \"=\"",
        "esperado símbolo \"&&\"",//"Era esperado \"&&\"",
        "esperado símbolo \"||\"",//"Era esperado \"||\"",
        "esperado símbolo \"!\"",//"Era esperado \"!\"",
        "esperado símbolo \"==\"",//"Era esperado \"==\"",
        "esperado símbolo \"!=\"",//"Era esperado \"!=\"",
        "esperado símbolo \"<\"",//"Era esperado \"<\"",
        "esperado símbolo \"<=\"",//"Era esperado \"<=\"",
        "esperado símbolo \">\"",//"Era esperado \">\"",
        "esperado símbolo \">=\"",//"Era esperado \">=\"",
        "esperado símbolo \",\"",//"Era esperado \",\"",
        "esperado símbolo \";\"",//"Era esperado \";\"",
        "esperado símbolo \"(\"",//"Era esperado \"(\"",
        "esperado símbolo \")\"",//"Era esperado \")\"",
        "esperado tipo boolean",//"Era esperado pr_boolean",
        "esperado laço do",//"Era esperado pr_do",
        "esperado condição else",//"Era esperado pr_else",
        "esperado fim de bloco end",//"Era esperado pr_end",
        "esperado valor false",//"Era esperado pr_false",
        "esperado identificador float",//"Era esperado pr_float",
        "esperado condição if",//"Era esperado pr_if",
        "esperado identificador integer",//"Era esperado pr_integer",
        "esperado expressão main",//"Era esperado pr_main",
        "esperado procedimento print",//"Era esperado pr_print",
        "esperado procedimento println",//"Era esperado pr_println",
        "esperado procedimento scan",//"Era esperado pr_scan",
        "esperado identificador string",//"Era esperado pr_string",
        "esperado valor true",//"Era esperado pr_true",
        "esperado identificador void",//"Era esperado pr_void",
        "esperado laço while",//"Era esperado pr_while",
        "esperado identificador global",//"Era esperado pr_global",
        "esperado identificador local",//"Era esperado pr_local",
        "esperado expressão return",//"Era esperado pr_return",
        "esperado inicio do programa",//"<programa> inválido",
        "esperado variável global",//"<var_glob> inválido",
        "esperado tipagem do identificador",//"<variaveis> inválido",
        "esperado identificador boolean, float, integer, string",//"<tipo> inválido",
        "esperado identificador",//"<lista_id> inválido",
        "esperado atribuição de valor",//"<valor> inválido",
        "esperado constante integer, constante float, constante string, constante boolean",//"<constante> inválido",
        "esperado true ou false",//"<const_boolean> inválido",
        "esperado declaração de procedure ou função",//"<lista_mod> inválido",
        "esperado declaração de procedure ou função",//"<modulo> inválido",
        "esperado identificador void, boolean, float, integer, string",//"<tipo_mod> inválido",
        "esperado declaração de parâmetros",//"<lista_param> inválido",
        "esperado declaração de parâmetros",//"<lista_param_aux> inválido",
        "esperado tipo boolean, float, integer, string e identificador",//"<parametro> inválido",
        "esperado variável local",//""<var_locais> inválido",
        "esperado return = valor;",//"<retorno> inválido",
        "esperado scan, print, println, if, do",//"<lista_cmd> inválido",
        "esperado scan, print, println, if, do",//"<comando> inválido",
        "esperado scan",//"<cmd_entrada> inválido",
        "esperado print, println",//"<cmd_saida> inválido",
        "esperado expressão",//"<lista_expr> inválido",
        "esperado if",//"<cmd_selecao> inválido",
        "esperado else",//"<else> inválido",
        "esperado do",//"<cmd_repeticao> inválido",
        "esperado lista de parâmetros",//"<param_reais> inválido",
        "esperado expressão relacional ou aritmética",//"<expressao> inválido",
        "esperado valor",//"<elemento> inválido",
        "esperado expressão relacional",//"<relacional> inválido",
        "esperado operador relacional",//"<operador_relacional> inválido",
        "esperado expressão aritmética",//"<aritmetica> inválido",
        "esperado identificador * ou identificador /",//"<termo> inválido",
        "esperado constante inteira, constante float, constante string",//"<fator> inválido",
        "esperado lista de identificadores",//"<lista_id1> inválido",
        "esperado parâmetro",//"<lista_param_aux1> inválido",
        "esperado atribuição ou passagem de parâmetros",//"<comando1> inválido",
        "esperado lista de expressões",//"<lista_expr1> inválido",
        "esperado operador e operando",//"<expressao1> inválido",
        "esperado operador relacional e operando",//"<relacional1> inválido",
        "esperado + identificador ou - identificador",//"<aritmetica1> inválido",
        "esperado operador",//"<termo1> inválido",
        "esperado (expressão)",//"<fator1> inválido"
    };
}
